home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-9.10-netbook-remix-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / checkbox / attribute.py < prev    next >
Text File  |  2009-11-05  |  1KB  |  42 lines

  1. #
  2. # This file is part of Checkbox.
  3. #
  4. # Copyright 2008 Canonical Ltd.
  5. #
  6. # Checkbox is free software: you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation, either version 3 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # Checkbox is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with Checkbox.  If not, see <http://www.gnu.org/licenses/>.
  18. #
  19. from checkbox.variables import Variable
  20.  
  21.  
  22. class Attribute(object):
  23.  
  24.     def __init__(self, name, cls, variable_factory=None):
  25.         self.name = name
  26.         self.cls = cls
  27.         self.variable_factory = variable_factory or Variable
  28.  
  29.  
  30. def get_attributes(cls):
  31.     if "__checkbox_attributes__" in cls.__dict__:
  32.         return cls.__dict__["__checkbox_attributes__"]
  33.     else:
  34.         attributes = {}
  35.         for name in dir(cls):
  36.             attribute = getattr(cls, name, None)
  37.             if isinstance(attribute, Attribute):
  38.                 attributes[name] = attribute
  39.  
  40.         cls.__checkbox_attributes__ = attributes
  41.         return cls.__checkbox_attributes__
  42.